\documentclass[a4paper,12pt]{article}

\usepackage[utf8]{inputenc}
\usepackage[brazil]{babel}
\usepackage[bottom=2.5cm, top=2.5cm, left=2.5cm, right=2.5cm] {geometry}
\newcommand{\tab}{\hspace*{1cm}}

\begin{document}

	\title{\Huge 'Interfaces de interação em sistemas POSIX e bibliotecas de apoio'}
	\author{FoG - HCI}
	\date{05 de Setembro de 2007}
	\maketitle
	
	\tableofcontents
	
	%\begin{abstract}
	%\end{abstract}

	\newpage
	\section{POSIX}
		\subsection{Introdução}
			\paragraph{}O nome POSIX é na verdade uma sigla para Portable Operating System Interface (Interface Portátil entre Sistemas Operacionais) e o X representa sua relação de origem que sua interface de programação tem com o sistema UNIX.Trata-se de um conjunto de regras estabelecido pela IEEE, que tem como objetivo permitir o uso de um mesmo código-fonte em várias plataformas que utilizam esse mesmo padrão.
			\paragraph{}O padrão também é responsável pelo reconhecimento dos sinais de entrada, como digitar algo no teclado e/ou movimentar o mouse. Vamos fazer uma análise desses dois sinais nas próximas seções.
		\subsection{Teclado}
			\paragraph{}Cada tecla do PC pssui um código numérico. Quando pressionamos uma delas, o processador que controla o teclado envia ao computador esse código de varredura, conhecido também como \textit{scancode}, junto com um sinal de que a tecla foi pressionada ou solta. As seqüências de eventos são então processadas pelo \textit{driver} de teclado e armazenadas em uma fila de caracteres que é lida pelas aplicações por meio da chamada de funções do sistema operativo\\
			O mapa de caracteres de um teclado é um arquivo de texto que indica a correspondência entre o código numérico da tecla e o caracter(ou seqüência de caracteres) que
			 ela representa, chamado \textit{keycode}. Exemplo:\\\\
			\textsf{
			\# atribuição da tecla '-' do teclado numérico à tecla com código 74\\
			keycode  74 = KP\_Subtract\\\\
			\# atribuição da tecla '4' do teclado numérico à tecla com código 75\\
    			keycode  75 = KP\_4\\\\
			\# etc\\\\
    			keycode  76 = KP\_5 -----------\# tecla 5\\
    			keycode  77 = KP\_6 -----------\# tecla 6\\
    			keycode  78 = KP\_Add --------\# soma\\
    			keycode  79 = KP\_1 -----------\# tecla 1\\
    			keycode  80 = KP\_2 -----------\# tecla 2}\\\\
			Além das teclas alfabéticas, numéricas e de símbolos, existem outras chamadas modificadoras como: \textit{Shift, Control, Alt} e também as chamadas ``teclas mortas'' (\textit{deadkeys}), que são aquelas que, quando pressionadas, não resultam no aparecimento de um caracter na tela, limitando-se a alterar o comportamento da tecla pressionada a seguir, como por exemplo o \textbf{\~} seguido de um \textbf{a} gera um \textbf{ã}.
		\subsection{Mouse}
			\paragraph{}O mouse, ao ser movimentado em uma superficie plana, arrasta uma bola, que projeta-se um pouco para fora da parte inferior e gira na direção do movimento.
			\paragraph{}Enquanto a bola gira, ela toca e move dois rolamentos posicionados a um ângulo de 90 graus um do outro. Um rolamento responde pelos moviventos correspondentes a movimentação vertical na tela e o outro responde pelos movimentos correspondentes a movimentação horizontal.
			\paragraph{}Cada movimento está ligado a uma roda, conhecida com o \textit{codificador}, da mesma forma que o jogo da direção de um carro está ligado por seus eixos às rodas. A medida que os rolamentos giram, eles rolam os codificadores.
			\paragraph{}Nas coroas de cada codificador há minúsculos pontos metálicos de contatos. Dois pares de barras de contatos saem do revestimento do mouse e tocam os pontos de contatos de cada um dos codificadores assim que elwes passam. Cada vez que uma barra de contato toca um ponto, gera um sinal elétrico. A quantidade de sinais indica quantos pontos as barras de contatos tocaram - quanto mais sinais, maior o trajeto percorrido pelo mouse. A direção para onde os rolamentos (considerando um mouse com bola embaixo) estão girando, combinada com a propporção entre o número de sinais dos rolamentos vertical e horizontal, indicam a direção para onde o mouse está se movendo.
			\paragraph{}Os sinais são enviados do PC para o programa através do cabo do mouse, que converte o número, a combinação e a frequência dos sinais dos dois codificadores na distâcia, direção e velocidade necessárias para over o cursor na tela.
			\paragraph{}Pressionar um dos botões localizados na parte superior do mouse, faz com que o sinal seja enviado ao PC, que por sua vez o passa ao programa. Baseado em quantas vezes você clica e na posição do cursor no momento do clique o programa executa a tarefa para o qual foi projetado.
	
\end{document}